home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-08-21 | 35.9 KB | 1,533 lines |
- ****************************************************************************
- ** Append to Amiga3.1.asm
- ** tanlib.i revision 1.85 28. 4.99 sc B0000 labs ptrs 20000
- ** asm lines 100000 labs asci 40000
- ****************************************************************************
-
- xxp_lver: SET 37 ;min version for Amiga libs (=release 2.04)
- xxp_tver: SET 37 ;min version for tandem.library (=release 1)
-
- ; Data used by Front.i and tandem.library
- ; Front.i creates an instance of this structure in a 1024 byte stack
- ; frame, and calls Program with A4 pointing to it.
-
- STRUCTURE xxp_tndm,0
-
- ;system information
-
- STRUCT xxp_buff,512 ;general purpose scratchpad
- WORD xxp_tand ;<> if running under Tandem (i.e. debugging)
- WORD xxp_user ;for applications (Tandem.i leaves alone)
- APTR xxp_bnch ;startup msg if under workbench, 0 if under CLI
- STRUCT xxp_A0D0,8 ;A0,D0 on startup (CLI params if xxp_bnch=0)
- APTR xxp_sysb ;base of system.library (cache of _AbsExecBase)
- APTR xxp_dosb ;base of dos.library
- APTR xxp_intb ;base of intuition.library
- APTR xxp_gfxb ;base of graphics.library
- APTR xxp_aslb ;base of asl.library
- APTR xxp_gadb ;base of gadtools.library
- APTR xxp_tanb ;base of tandem.library
- APTR xxp_oput ;CLI output stream/Workbench monitor
- APTR xxp_iput ;CLI input stream/Workbench monitor
- LONG xxp_memk ;memkey for AllocRemember
- LONG xxp_cdir ;<> if user has changed the CD (init CD here)
- LONG xxp_hndl ;handle from TLOpenread/write
- APTR xxp_strg ;pointer to strings table in user program
- WORD xxp_ackn ;Program sets to string num of closedown msg
-
- ; Data initialised at first call to TLWindow (or via TLReq....)
- ; Front0.i sets xxp_Screen to null to show all inoperative
- ; If user wants other than workbench screen, poke it to xxp_Screen, and:
- ; xxp_Public=0 when Front0.i will close xxp_Screen after Program rts's
- ; xxp_Public=-1 when Front0.i will leave xxp_Screen alone
-
- APTR xxp_Screen ;the screen used for TL calls
- APTR xxp_vi ; GadTools vi for xxp_Screen
- LONG xxp_Width ; screen width
- LONG xxp_Height ; screen height
- LONG xxp_Depth ; screen depth
- APTR xxp_EBmap ;Double buffering area used by TLReqedit bitmap
- APTR xxp_ERport ; rastport
- LONG xxp_ehgt ; height
- LONG xxp_ewid ; width
- APTR xxp_FSuite ;Instance of an xxp_fsui structure (see below)
- LONG xxp_Stak ;Caller d0-d7/a0-a6 set by requesters for hooks
- APTR xxp_FWork ;Used by TLReqedit, &c (see below)
- APTR xxp_WSuite ;Instance of an xxp_wsui structure (see below)
- APTR xxp_AcWind ; Address of currently active window in xxp_WSuite
- WORD xxp_Active ; its window num; -1 if none active
- WORD xxp_Public ;for TLWclose: 2=close xxp_Screen; 1=leave alone
- WORD xxp_Pop ;window num to pop for requesters
- LONG xxp_Help ;first line, number of lines, of help
- WORD xxp_ReqNull ;set <>0 to enable requesters, 0 to disable
-
- ;sundry data for internal use by TL routines
-
- LONG xxp_tbbw ;tabs total width
- LONG xxp_tbbh ; total height
- LONG xxp_tblw ; individual width
- LONG xxp_tblh ; individual height
- STRUCT xxp_kybd,16 ;D0-D3 returned by TLKeyboard
- LONG xxp_crsr ;cursor tab (0+)
- LONG xxp_tbss ;tabs string num with thumbtag labels
- LONG xxp_valu ; value of number input
- LONG xxp_chnd ; <> if input string changed
- LONG xxp_lins ;TLMultiline no. of lines in xxp_Mmem
- LONG xxp_guid ;path of AmigaGuide invoked by TLHelp
- LONG xxp_node ;node of AmigaGuide invoked by TLHelp
- LONG xxp_gide ;workspace to TLGide
- LONG xxp_mmtp ;unused
- STRUCT xxp_rnge,8 ;unused
- LONG xxp_glob ;unused
- STRUCT xxp_patt,32 ;TLMultiline,TLReqshow string sought
- LONG xxp_errn ;Error number
- LONG xxp_rinf ;TLReqshow data extent pointer
- LONG xxp_Hook ;TLReqshow callback hook
-
- ; data for requester buttons
-
- LONG xxp_reqx ;Requester xpos *** Caution: do not
- LONG xxp_reqy ; ypos *** interpose noew items
- LONG xxp_reqw ; width *** between reqx and butl
- LONG xxp_reqh ; height
- LONG xxp_butx ;Button set xpos
- LONG xxp_buty ; ypos
- LONG xxp_butw ; width
- LONG xxp_buth ; height
- LONG xxp_btdx ; dx
- LONG xxp_btdy ; dy
- LONG xxp_butk ; buttons in row
- LONG xxp_butl ; no. of rows
-
- ; printer data
-
- WORD xxp_styl ;unused
- BYTE xxp_lppg ;printer lines/page
- BYTE xxp_marg ;printer margins
- BYTE xxp_cpln ;printer chrs/line
- BYTE xxp_pica ;print -1=pica 0=elite
-
- ; output of xxp_TSize
-
- LONG xxp_wdth ;output of xxp_TSize D4 = width
- LONG xxp_chrs ; D5 = chrs
- LONG xxp_ysiz ; D6 = ysiz
- LONG xxp_basl ; D7 = baseline
-
- STRUCT xxp_fil1,2 ;(unused)
-
- ;data for requester sliders
-
- LONG xxp_slix ;Slider xpos
- LONG xxp_sliy ; ypos
- LONG xxp_sliw ; width
- LONG xxp_slih ; height TLReqshow
- LONG xxp_otop ;(unused)
- LONG xxp_tops ; Value slide top {num of top string shown
- LONG xxp_totl ; total {total strings
- LONG xxp_strs ; slide {strings on screen
- LONG xxp_lcom ; {line to be complemented
- LONG xxp_hook ; hook to call when slider moves
-
- ;sundry data
-
- APTR xxp_busy ;TLBusy chip memory
- APTR xxp_hook0 ;called by TLReqchek if set
- APTR xxp_hook1 ;called by TLReqon if set
- APTR xxp_hook2 ;called by TLHook2 if set
-
- ;data for opening printer.device
-
- APTR xxp_requ ;printer request
- LONG xxp_sigb ;signal bit
- WORD xxp_devo ;<> if printer open
- STRUCT xxp_rept,MP_SIZE ;message port(=34)
-
- ;misc data
- APTR xxp_splc ;data for spell.library
- LONG xxp_about ;about line, numlines for TLMultiline
-
- ;data for TLProgress
- STRUCT xxp_prgd,16 ;xpos,ypos,wdth,hght of thermometer
- STRUCT xxp_prgi,4 ;(unused)
-
- ;misc data
- LONG xxp_gadg ;if <>, gadgets for TLWindow
- APTR xxp_slid ;instance of an xxp_slis structure, or 0
- APTR xxp_mesg ;most recent IntuiMessage from TLMmess
- APTR xxp_pref ;GUI prefs (an xxp_yprf structure)
- STRUCT xxp_prfp,8 ;used by TLReqon, &c (operative xxp_prefs data)
- APTR xxp_pixx ;chip mem for .pix in TLWindow
-
- STRUCT xxp_fil0,22 ;(unused)
-
- LABEL xxp_size ;must not exceed 1024
-
- * Structure of memory pointed to by xxp_WSuite
-
- ; sub-structures pointed to by xxp_wsui - data for each window
-
- STRUCTURE xxp_wsuw,0
-
- ;data for TLReqedit,TLText,&c (TLReqedit,TLText,&c also use xxp_Wport)
- BYTE xxp_FrontPen ; } pens & drawmode
- BYTE xxp_BackPen ; }
- BYTE xxp_DrawMode ; }
- BYTE xxp_Kludge ; }
- WORD xxp_LeftEdge ; } These are set to top left of printable area
- WORD xxp_TopEdge ; }
- WORD xxp_xmin ; } xmin underlap found in last TLTsize (+ve)
- WORD xxp_xmax ; } xmax overlap found in lst TLTsize (+ve)
- APTR xxp_IText ; } null delimited ASCII to be printed
- WORD xxp_Fnum ; } font number for window
- WORD xxp_Attc ; } -1 if new Fnum, else operative Fsty
- WORD xxp_Fsty ; } font style (0-3 for xxp_plain &c) } supplementary
- WORD xxp_Tspc ; } text spacing } to above
-
- ;other data for the window
- LONG xxp_Window ;the window's own address (0 if unopened)
- LONG xxp_Menu ;menu created by TLReqmenu (must not be shared)
- WORD xxp_Menuon ;<> if xxp_Menu attached
- WORD xxp_PWidth ; } current window print width (width-borders)
- WORD xxp_PHeight ; } current window print height (height-borders)
- APTR xxp_WPort ;window rastport
- LONG xxp_Wcheck ;window dims used by TLWcheck
- WORD xxp_ReqLeft ;requester lhs
- WORD xxp_ReqTop ;requester top
-
- ;data used by TLMultiline
- APTR xxp_Mmem ;<>0 if mem addr for TLMultiline } applicable if
- LONG xxp_Mmsz ;memsize (if xxp_Mmem<>0) } TLMultiline
- LONG xxp_Mtop ;addr top of lines (if mmp_Mmem<>0) } called for this
- LONG xxp_Mcrr ;line num w. cursor } window, else
- WORD xxp_Mmxc ;max characters in line } xxp_Mmem=0
- LONG xxp_Mtpl ;topline shown on window }
-
- ;Window refresh
- APTR xxp_Refr ;TLKeyboard window refresh (not usually used)
- APTR xxp_scrl ;an xxp_scro structure (null if no scroll bars)
-
- LONG xxp_shad ;shadow font: 0unused 1pen 2dy 1dx
- LONG xxp_Styl ;(unused)
-
- ;data passed from windows 0-9 to windows 10,11 (i.e. requesters,help)
- WORD xxp_RFont ;requesters fontnum } When a requester or
- WORD xxp_HFont ; help fontnum } TLHelp is invoked, this
- WORD xxp_RTspc ;requesters xxp_Tspc } data from xxp_AcWind (if
- WORD xxp_HTspc ; help xxp_Tspc } any window is active) is
- WORD xxp_RFsty ;requesters xxp_Fsty } passed to window 10
- WORD xxp_HFsty ; help xxp_Fsty } or 11.
-
- LABEL xxp_siz2
-
- ; the structure pointed to by xxp_WSuite
-
- STRUCTURE xxp_wsui,0 ;(consists of 12 xxp_wsuw structures)
- STRUCT xxp_ws00,xxp_siz2 ;windows 0-9
- STRUCT xxp_ws01,xxp_siz2
- STRUCT xxp_ws02,xxp_siz2
- STRUCT xxp_ws03,xxp_siz2
- STRUCT xxp_ws04,xxp_siz2
- STRUCT xxp_ws05,xxp_siz2
- STRUCT xxp_ws06,xxp_siz2
- STRUCT xxp_ws07,xxp_siz2
- STRUCT xxp_ws08,xxp_siz2
- STRUCT xxp_ws09,xxp_siz2
- STRUCT xxp_ws10,xxp_siz2 ;used for requesters
- STRUCT xxp_ws11,xxp_siz2 ;use for help
- LABEL xxp_siz3
-
- * Structure of font suite & .styl data (pointed to by xxp_FSuite,xxp_FWork)
-
- ; sub-structure of xxp_fsui for each font
-
- STRUCTURE xxp_fsuf,0 ;structure of xxp_FSuite entries
- STRUCT xxp_attr,8 ;TextAttr for the font
- STRUCT xxp_fnam,32 ;the fontname
- APTR xxp_plain ;addr of normal size (0 if unopened)
- APTR xxp_bold ;addr of double width (0 if unopened)
- APTR xxp_ital ;addr of half height (0 if unopened)
- APTR xxp_boit ;addr of dbl wdth + hlf ht (0 if unopened)
- LABEL xxp_fsiz ;=56
-
- ; the structure pointed to by xxp_FSuite
-
- STRUCTURE xxp_fsui,0 ;(consists of 10 xxp_fsuf structures)
- STRUCT xxp_fs00,xxp_fsiz ;font 0 - always Topaz/8
- STRUCT xxp_fs01,xxp_fsiz
- STRUCT xxp_fs02,xxp_fsiz
- STRUCT xxp_fs03,xxp_fsiz
- STRUCT xxp_fs04,xxp_fsiz
- STRUCT xxp_fs05,xxp_fsiz
- STRUCT xxp_fs06,xxp_fsiz
- STRUCT xxp_fs07,xxp_fsiz
- STRUCT xxp_fs08,xxp_fsiz
- STRUCT xxp_fs09,xxp_fsiz
- STRUCT xxp_fs10,xxp_fsiz ;font 10 - default requesters
- STRUCT xxp_fs11,xxp_fsiz ;font 11 - default Reqshow
- LABEL xxp_siz4 ;=672
-
- ; the structure pointed by xxp_FWork
-
- ; bytes 0-1799 used by TLReqedit
- ; bytes 1800-2399 used by TLMultiline
-
- xxp_siz5 equ 2400
-
- * default values
- xxp_ewiv: SET 1280 ;default xxp_ewid (160*8) } 20480 bytes/plane
- xxp_ehgv: SET 128 ;default xxp_ehgt }
- xxp_col1: SET $01000200 ;default xxp_colr (1,0 2,0)
- xxp_col2: SET $03000103 ;default xxp_colr+4 (3,0 1,3)
-
- * the data pointed to by xxp_splc (used by spell.library)
- STRUCTURE xxp_Spel,0
- APTR xxp_dict ;address of spelling diectionary
- LONG xxp_dics ;size of sp_dict
- APTR xxp_priv ;address of private list (0 if none)
- APTR xxp_prit ;top of sp_priv
- LONG xxp_pris ;size of sp_priv memory
- APTR xxp_temp ;address of temporary list
- APTR xxp_temt ;top of sp_temp
- LONG xxp_tems ;size of sp_temp
- APTR xxp_clog ;address of corrections log
- APTR xxp_clot ;top of sp_clot
- LONG xxp_clos ;size of sp_clot
- APTR xxp_comm ;address of common errors
- APTR xxp_comt ;top of sp_comm
- LONG xxp_coms ;size of sp_comm
- APTR xxp_spel ;address of line(s) to spell check } used only
- APTR xxp_splt ;top of sp_spel } by
- LONG xxp_spls ;size of sp_spel } TLSpelchek
- BYTE xxp_case ;case checking: -1,0,1=ignore/correct/query
- BYTE xxp_ctxt ;context display -1,0,1=none/errors/all
- BYTE xxp_pryn ;private list -1,1=yes/no
- BYTE xxp_tpyn ;temporary list -1,1=yes/no
- BYTE xxp_cmyn ;common errors -1,1=yes/no
- BYTE xxp_lgyn ;log or changes -1,1=yes/no
- BYTE xxp_klu0 ;(unused)
- BYTE xxp_klu1 ;(unused)
- STRUCT xxp_word,30 ;word to be checked
- STRUCT xxp_sugg,70 ;suggestions for xxp_word
- STRUCT xxp_swrk,8 ;internal use
- APTR xxp_dptr ;dict pointers } These can be removed by AllocVec,
- APTR xxp_pptr ;priv pointers } when 0 must be poked to here.
- STRUCT xxp_pdir,130 ;xxp_priv directory
- STRUCT xxp_pfil,34 ;xxp_priv file
- STRUCT xxp_ddir,130 ;xxp_dict directory
- STRUCT xxp_dfil,34 ;xxp_dict file
- LABEL xxp_spsz ; = 520 to end of xxp_dfil
-
- * tags for TLreqedit
- xxp_xtext: equ 1 ;Address of text, e.g. xxp_FWork dflt buff
- xxp_xstyl: equ 2 ;Address of styl, e.g. xxp_FWork+256 dflt all 0
- xxp_xmaxt: equ 3 ;Maximum width of tablet dflt max possible
- xxp_xmaxc: equ 4 ;Maximum characters dflt 255
- xxp_xmaxw: equ 5 ;Max text width (no dflt - use xxp_xmaxc)
- xxp_xcrsr: equ 6 ;initial cursor posn -1 for none dflt 0
- xxp_xoffs: equ 7 ;fixed offset -1 for none dflt -1
- xxp_xforb: equ 8 ;forbids (see below) dflt all
- xxp_xtask: equ 9 ;task 0-3 (see below) dflt 0
- xxp_xcomp: equ 10 ;-1=complement 0=don't complement dflt 0
- xxp_xnprt: equ 11 ;-1=don't print 0=print dflt 0
- xxp_xfont: equ 12 ;fontnum dflt 0
- xxp_xcspc: equ 13 ;cspace dflt 0
- xxp_xmaxj: equ 14 ;max fjust spacing 0=force dflt 5
- xxp_xltyp: equ 15 ;initial ltype (see below) dflt 0
- xxp_xkybd: equ 16 ;crsr xpos in pixels, dlft use xxp_xcrsr
- ;(17 unused)
- xxp_xiclr: equ 18 ;-1=clear tablet before starting dflt 0
- xxp_xtral: equ 19 ;-1=remove trailing spaces before RTS dflt=0
- xxp_xshdv: equ 20 ;shadow: 0,pen,dy,dx dflt xxp_shad -> 00020102
- xxp_xresz: equ 21 ;0=resize forbid, -1=resize cont, dflt 0
- xxp_xmenu: equ 22 ;menu num (if any) of "Text Format" menu
- xxp_xfgbg: equ 23 ;0,0,foreground pen,background pen (dflt wsuw)
- xxp_xffix: equ 24 ;-1=force fixed width dflt 0
- xxp_xjam1: equ 25 ;-1=jam1 0=jam2 dflt 0
- xxp_xcase: equ 26 ;0=normal 1=ucase 2=lcase 3=small cap dflt 0
- xxp_xstyb: equ 27 ;lsb of argument = styl of all bytes dflt 0
- xxp_xrevs: equ 28 ;-1=reverse (right to left) printing
-
- * TLReqedit xxp_xforb forbid bits (OR them together)
- xxp_xesty: equ $0FFF ;disable all changes to styl
-
- xxp_xbold: equ $0001 ;disable Ctrl B bold
- xxp_xital: equ $0002 ;disable Ctrl I italic
- xxp_xundl: equ $0004 ;disable Ctrl U underline, strike thru
- xxp_xdubl: equ $0008 ;disable Ctrl W wide
- xxp_xfixt: equ $0010 ;disable Ctrl P force fixed
- xxp_xshad: equ $0020 ;disable Ctrl S shadow
- xxp_xrjst: equ $0040 ;disable Ctrl R right just
- xxp_xfjst: equ $0080 ;disable Ctrl J full just
- xxp_xcent: equ $0100 ;disable Ctrl C centre
- xxp_xljst: equ $0200 ;disable Ctrl L left just
- xxp_xcmpj: equ $0400 ;disable Shift Ctrl C complement
- xxp_xsusb: equ $0800 ;disable Ctrl up/down arrow super/sub script
- xxp_xunrm: equ $1000 ;disable return if menu select
- xxp_xunre: equ $2000 ;disable return if unknown Ctrl key
- xxp_xunrc: equ $4000 ;disable return if unknown other than Ctrl
-
- * TLMultiline forbid &c bits
- xxp_xmsty: equ $FFF0 ;disable all changes to styl
-
- xxp_xchnd: equ $0001 ;<> = text changed (on return)(ignored on call)
- xxp_xunsv: equ $0002 ;<> = text unsaved (on call & return)
-
- xxp_xpage: equ $0010 ;disable paging
- xxp_xblok: equ $0020 ;disable blocking
- xxp_xspce: equ $0040 ;disable lspace
- xxp_xspac: equ $0080 ;disable cspace
- xxp_xjust: equ $0100 ;disable fjst change
- xxp_xpens: equ $0200 ;disable pens
- xxp_xcols: equ $0400 ;(unused)
- xxp_xpict: equ $0800 ;disable graphics
- xxp_xfnts: equ $1000 ;disable font select
- xxp_xrend: equ $2000 ;(unused)
-
- xxp_xchng: equ $80000000 ;disable all alterations to text
-
- * TLReqedit xxp_xtask task values
- xxp_xtstr: equ 0 ;string - no continuation line
- xxp_xtcon: equ 1 ;string - continuation line
- xxp_xtdec: equ 2 ;number - decimal number } return value in
- xxp_xthex: equ 3 ;number - hex number } xxp_valu
-
- * TLReqedit xxp_xltyp initial justification values
- xxp_xleft: equ 0 ;left justification } Final value in
- xxp_xcntr: equ 1 ;centre } bits 8-9 of
- xxp_xrght: equ 2 ;right justification } xxp_chnd
- xxp_xfull: equ 3 ;full justification }
-
- * TLReqedit xxp_xstyl bits
- xxp_xbit0: equ 0 ;bold
- xxp_xbit1: equ 1 ;italic
- xxp_xbit2: equ 2 ;underline } 0001 und 0011 ovr 0101 und+ovr
- xxp_xbit3: equ 3 ;superscript } 0010 sup 0111 dbl und + ovr
- xxp_xbit4: equ 4 ;subscript } 0100 sub 0110 dbl und
- xxp_xbit5: equ 5 ;dot underlin} 1000 dot 1001 thru
- xxp_xbit6: equ 6 ;shadow font
- xxp_xbit7: equ 7 ;double width
-
- * TLreqedit return codes
- xxp_xrtn: equ 0 ;return / accept
- xxp_xesc: equ 1 ;Esc / cancel
- xxp_xnpr: equ 2 ;tagged no print
- xxp_xncr: equ 3 ;tagged no cursor
- xxp_xcnt: equ 4 ;contin line formed (without pressing return)
- xxp_xclk: equ 5 ;left mouse button while pointer off tablet
- xxp_xmnu: equ 6 ;user made menu selection
- xxp_xunk: equ 7 ;unknown keyboard input (e.g. left/right Amiga)
- xxp_xnrr: equ 8 ;window became too narrow
- xxp_xshl: equ 9 ;window became too shallow
- xxp_xoff: equ 10 ;can't obey fixed offset
- xxp_xfnt: equ 11 ;can't attach font (out of memory)
-
- * data pointed to by xxp_slid
- STRUCTURE xxp_slis,0
- LONG xxp_draw ;screen DrawInfo
- APTR xxp_szob ;Size Object
- APTR xxp_lfob ;Left Object
- APTR xxp_rtob ;Right Object
- APTR xxp_upob ;Up Object
- APTR xxp_dnob ;Down Object
- APTR xxp_ckob ;Check Object
- LONG xxp_psec ;prefs keyboard repeat secs
- LONG xxp_pmic ; micros
- LONG xxp_asec ;last boopsi message secs
- LONG xxp_amic ; micros
- LABEL xxp_slsz ;Size of xxp_slis
-
- * data pointed to by xxp_scrl
- STRUCTURE xxp_scro,0
- APTR xxp_scoh ;horizontal scroller object
- APTR xxp_slfo ; left object
- APTR xxp_srto ; right object
- APTR xxp_scov ;vertical scroller object
- APTR xxp_supo ; up object
- APTR xxp_sdno ; down object
- APTR xxp_gcnt ;gadtools context
- LONG xxp_hztp ;horizontal top
- LONG xxp_hzvs ; visible
- LONG xxp_hztt ; total
- LONG xxp_vttp ;vertical top
- LONG xxp_vtvs ; visible
- LONG xxp_vttt ; total
- LABEL xxp_scrs ;size of xxp_scro
-
- * structure to hold GUI prefs (in xxp_pref)
- STRUCTURE xxp_yprf,0 ;GUI prefs
- STRUCT xxp_yfon,32 ;requester fontname
- WORD xxp_yhgt ; fontheight
- BYTE xxp_ysty ; fontstyle
- BYTE xxp_yspc ; fontspacing
- STRUCT xxp_yfsh,32 ;show data fontname (height 8)
- STRUCT xxp_ychs,8 ;choose bkgrnd,titl,txt pens; horz,vrt gaps; 000
- STRUCT xxp_yinp,8 ;input ditto
- STRUCT xxp_yinf,8 ;info ditto
- STRUCT xxp_yprg,8 ;prog ditto (no title, horz=prgress, no vert)
- STRUCT xxp_ydat,8 ;data ditto (no vert)
- STRUCT xxp_yshw,8 ;show ditto (no horz, no vert)
- LABEL xxp_ypsz
-
- ******************* MACRO's for tandem.library ************************
-
- * macro for NewMenu structure
- TLnm: MACRO
- IFEQ \1-1
- dc.b NM_TITLE,0
- ENDC
- IFEQ \1-2
- dc.b NM_ITEM,0
- ENDC
- IFEQ \1-3
- dc.b NM_SUB,0
- ENDC
- IFGE \1-4
- dc.b NM_END,0
- ENDC
- IFEQ \2+1
- dc.l NM_BARLABEL
- ENDC
- IFNE \2+1
- dc.l \2
- ENDC
- IFGE NARG-3
- dc.l \3 ;\3=0, CommKey ptr, or 0<strnum<1024, next chr of strnum.
- ENDC ; Thus for example all commkeys may be in string 27,
- IFLT NARG-3 ; when ea. param 3 is 27 & chrs get picked off 1 by 1
- dc.l 0 ;(if no \3, assume 0)
- ENDC
- IFGE NARG-4
- dc.w \4 ;\4=flags (usually omitted)
- ENDC
- IFLT NARG-4
- dc.w 0 ;(if no \4, assume 0)
- ENDC
- IFGE NARG-5
- dc.l \5,0 ;\5=mutual exclude (usually omitted)
- ENDC
- IFLT NARG-5
- dc.l 0,0 ;(if no \5, assume 0)
- ENDC
- ENDM
-
- ; **** All MACRO's *must* be called with A4 pointing to xxp_buff ****
-
- * MACRO used by MACRO's below
- TLDo: MACRO ;\1=function name w/out TL, e.g. Height
- move.l a6,-(a7) ;save all except whatever tandem.library changes
- move.l xxp_tanb(a4),a6 ;a6=tanbase * Use TLDo direct after loading
- jsr _LVOTL\1(a6) ;do the call * the registers "by hand"; else
- move.l (a7)+,a6 ;restore a6 * use the MACRO's below. Assume
- ENDM ; * CCR is undefined after TLDo.
-
- * MACRO's for calling tandem.library
- TLfsub: MACRO
- move.l d0,-(a7)
- move.l \1,d0
- TLDo Fsub
- move.l (a7)+,d0
- ENDM
-
- TLstrbuf: MACRO
- move.l d0,-(a7)
- move.l \1,d0
- TLDo Strbuf
- move.l (a7)+,d0
- ENDM
-
- TLstra0: MACRO
- move.l d0,-(a7)
- move.l \1,d0
- TLDo Stra0
- move.l (a7)+,d0
- ENDM
-
- TLerror: MACRO
- TLDo Error
- tst.l d0
- eori #-1,CCR
- ENDM
-
- TLopenread: MACRO
- TLDo Openread
- tst.l D0
- ENDM
-
- TLopenwrite: MACRO
- TLDo Openwrite
- tst.l D0
- ENDM
-
- TLwritefile: MACRO
- movem.l d2-d3,-(a7)
- move.l \1,d2
- move.l \2,d3
- TLDo Writefile
- movem.l (a7)+,d2-d3
- tst.l xxp_errn(a4)
- eori #-1,CCR
- ENDM
-
- TLreadfile: MACRO
- movem.l d2-d3,-(a7)
- move.l \1,d2
- move.l \2,d3
- TLDo Readfile
- movem.l (a7)+,d2-d3
- tst.l xxp_errn(a4)
- eori #-1,CCR
- ENDM
-
- TLclosefile: MACRO
- TLDo Closefile
- ENDM
-
- TLaschex: MACRO
- move.l \1,a0
- TLDo Aschex
- tst.l d0
- ENDM
-
- TLhexasc: MACRO
- move.l d0,-(a7)
- move.l \1,d0
- move.l \2,a0
- TLDo Hexasc
- move.l (a7)+,d0
- ENDM
-
- TLoutput: MACRO
- move.l d0,-(a7)
- TLDo Output
- move.l (a7)+,d0
- ENDM
-
- TLinput: MACRO
- move.l d0,-(a7)
- TLDo Input
- move.l (a7)+,d0
- ENDM
-
- TLpublic: MACRO
- move.l \1,d0
- TLDo Public
- tst.l d0
- ENDM
-
- TLchip: MACRO
- move.l \1,d0
- TLDo Chip
- tst.l d0
- ENDM
-
- TLprogdir: MACRO
- TLDo Progdir
- ENDM
-
- TLkeyboard: MACRO
- TLDo Keyboard
- ENDM
-
- TLwindow: MACRO
- movem.l d1-d7/a0,-(a7)
- move.l \1,d0
- IFGT NARG-1
- move.l \2,d1
- move.l \3,d2
- move.l \4,d3
- move.l \5,d4
- move.l \6,d5
- move.l \7,d6
- move.l \8,d7
- IFGE NARG-9
- move.l \9,a0
- ENDC
- ENDC
- TLDo Window
- movem.l (a7)+,d1-d7/a0
- tst.l d0
- ENDM
-
- TLwclose: MACRO
- TLDo Wclose
- ENDM
-
- TLtext: MACRO
- movem.l d0-d1,-(a7)
- move.l \1,d0
- move.l \2,d1
- TLDo Text
- movem.l (a7)+,d0-d1
- ENDM
-
- TLtsize: MACRO
- TLDo Tsize
- ENDM
-
- TLwfront: MACRO
- TLDo Wfront
- ENDM
-
- TLgetfont: MACRO
- movem.l d0-d1/a0,-(a7)
- move.l \1,a0
- move.l \2,d0
- move.l \3,d1
- TLDo Getfont
- movem.l (a7)+,d0-d1/a0
- ENDM
-
- TLnewfont: MACRO
- movem.l d0-d2,-(a7)
- move.l \1,d0
- move.l \2,d1
- moveq #0,d2
- IFGE NARG-3
- move.l \3,d2
- ENDC
- TLDo Newfont
- tst.l D0
- movem.l (a7)+,d0-d2
- ENDM
-
- TLaslfont: MACRO
- movem.l d0-d1,-(a7)
- move.l \1,d0
- TLDo Aslfont
- tst.l d0
- movem.l (a7)+,d0-d1
- ENDM
-
- TLaslfile: MACRO
- movem.l d1/a0-a1,-(a7)
- move.l \1,a0
- move.l \2,a1
- move.l \3,d0
- moveq #1,d1
- IFC '\4','sv'
- moveq #-1,d1
- ENDC
- TLDo Aslfile
- movem.l (a7)+,d1/a0-a1
- tst.l d0
- ENDM
-
- TLwslof: MACRO
- TLDo Wslof
- ENDM
-
- TLreqbev: MACRO
- movem.l d0-d5/a0,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- move.l \4,d3
- and.l #$FFFF,d0
- IFGE NARG-5
- IFC '\5','rec'
- bset #31,d0
- ENDC
- IFC '\5','box'
- bset #30,d0
- ENDC
- ENDC
- IFGE NARG-6
- IFNC '\6',''
- move.l \6,a0
- bset #31,d1
- ENDC
- ENDC
- IFGE NARG-7
- bset #29,d0
- move.l \7,d4
- ENDC
- IFEQ NARG-8
- moveq #2,d5
- ENDC
- IFGE NARG-8
- move.l \8,d5
- ENDC
- TLDo Reqbev
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- movem.l (a7)+,d0-d5/a0
- ENDM
-
- TLreqarea: MACRO
- movem.l d0-d4/a0,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- move.l \4,d3
- IFGE NARG-5
- IFNC '\5',''
- bset #29,d0
- move.l \5,d4
- ENDC
- ENDC
- IFGE NARG-6
- bset #31,d1
- move.l \6,a0
- ENDC
- TLDo Reqarea
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- movem.l (a7)+,d0-d4/a0
- ENDM
-
- TLreqcls: MACRO
- TLDo Reqcls
- ENDM
-
- TLreqfull: MACRO
- TLDo Reqfull
- ENDM
-
- TLreqchoose: MACRO
- move.l d1,-(a7)
- moveq #0,d1
- IFEQ NARG-2
- move.l \1,d0
- move.l \2,d1
- ENDC
- TLDo Reqchoose
- move.l (a7)+,d1
- tst.l d0
- ENDM
-
- TLreqinput: MACRO
- movem.l d1-d3,-(a7)
- move.l \1,d0
- moveq #0,d1
- moveq #20,d2
- IFGE NARG-2
- IFC '\2','num'
- moveq #-1,d1
- moveq #4,d2
- ENDC
- ENDC
- IFGE NARG-2
- IFC '\2','hex'
- moveq #1,d1
- moveq #8,d2
- ENDC
- ENDC
- IFGE NARG-3
- move.l \3,d2
- ENDC
- moveq #0,d3
- IFGE NARG-4
- move.l \4,d3
- ENDC
- TLDo Reqinput
- move.l d0,d1
- move.l xxp_valu(a4),d0
- tst.l d1
- movem.l (a7)+,d1-d3
- ENDM
-
- TLreqedit: MACRO
- movem.l d1/a0,-(a7)
- move.l \1,d0
- move.l \2,d1
-
- IFNC '\3','0' ;do if \3 = custom tags
- IFNC '\3','1'
- move.l \3,a0
- TLDo Reqedit
- movem.l (a7)+,d1/a0
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- MEXIT
- ENDC
- ENDC
-
- movem.l a1/a5,-(a7) ;do if \3 = 0 or 1 (default tags for plain, styl)
- sub.w #100,a7
- move.l a7,a1
- move.l #xxp_xtext,(a1)+ ;tag 1: text = a4
- move.l a4,(a1)+
- IFC '\3','1'
- move.l #xxp_xstyl,(a1)+ ;tag 2: styl = FWork+256 (tag 2-4 styl only)
- move.l xxp_FWork(a4),(a1)
- add.l #256,(a1)+
- move.l #xxp_xfont,(a1)+ ;tag 3: font = as per AcWind
- move.l xxp_AcWind(a4),a5
- clr.w (a1)+
- move.w xxp_Fnum(a5),(a1)+
- move.l #xxp_xcspc,(a1)+ ;tag 4: cspc = as per AcWind
- clr.w (a1)+
- move.w xxp_Tspc(a5),(a1)+
- ENDC
- move.l #xxp_xmaxc,(a1)+ ;tag 5: maxc = \4, deflt 20, or 4 if num, 8 if hex
- move.l #20,(a1)+
- IFGE NARG-8
- IFC '\8','num'
- move.l #4,-4(a1)
- ENDC
- IFC '\8','hex'
- move.l #8,-4(a1)
- ENDC
- ENDC
- IFGE NARG-4
- IFNC '\4',''
- move.l \4,-4(a1)
- ENDC
- ENDC
- IFGE NARG-5 ;tag 6: maxt = \5, dflt none
- IFNC '\5',''
- move.l #xxp_xmaxt,(a1)+
- move.l \5,(a1)+
- ENDC
- ENDC
- IFGE NARG-6 ;tag 7: maxw = \6, dflt none
- IFNC '\6',''
- move.l #xxp_xmaxw,(a1)+
- move.l \6,(a1)+
- ENDC
- ENDC
- IFGE NARG-7 ;tag 8: menu = \7, dflt none
- IFNC '\7',''
- move.l #xxp_xmenu,(a1)+
- move.l \7,(a1)+
- ENDC
- ENDC
- IFGE NARG-8 ;tag 9: task = str/num/hex, default str
- IFNC '\8',''
- move.l xxp_xtask,(a1)+
- clr.l (a1)+
- IFC '\8','num'
- move.l #xxp_xtdec,-4(a1)
- ENDC
- IFC \'8','hex'
- move.l #xxp_xthex,-4(a1)
- ENDC
- ENDC
- ENDC
- move.l #xxp_xiclr,(a1)+ ;tag 10: iclr = -1
- move.l #-1,(a1)+
- move.l #xxp_xtral,(a1)+ ;tag 11: tral = -1
- move.l #-1,(a1)+
- move.l #xxp_xforb,(a1)+
- IFC '\3','0' ;tag 12: forb = 0/xxp_xesty
- move.l #xxp_xesty,(a1)+
- ENDC
- IFC '\3','1'
- clr.l (a1)+
- ENDC
- clr.l (a1) ;delimit tags
- move.l a7,a0
- TLDo Reqedit ;do the edit
- add.w #100,a7 ;discard tags
- movem.l (a7)+,a1/a5
- movem.l (a7)+,d1/a0
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLreqshow: MACRO
- movem.l d1-d2/a5,-(a7)
- move.l \1,a0
- move.l \2,d0
- move.l \3,d1
- move.l \4,d2
- moveq #0,d3
- IFGE NARG-5
- move.l \5,d3
- ENDC
- IFGE NARG-6
- IFC 'seek','\6'
- bset #31,d2
- ENDC
- IFC 'smart','\6'
- bset #31,d2
- bset #30,d2
- ENDC
- ENDC
- TLDo Reqshow
- movem.l (a7)+,d1-d2/a5
- tst.l d0
- ENDM
-
- TLassdev: MACRO
- TLDo Assdev
- tst.l d0
- ENDM
-
- TLreqmenu: MACRO
- movem.l d0/a0,-(a7)
- move.l \1,a0
- TLDo Reqmenu
- tst.l d0
- movem.l (a7)+,d0/a0
- ENDM
-
- TLreqmuset: MACRO
- TLDo Reqmuset
- ENDM
-
- TLreqmuclr: MACRO
- TLDo Reqmuclr
- ENDM
-
- TLreqinfo: MACRO
- movem.l d1-d2,-(a7)
- move.l \1,d0
- moveq #1,d1
- moveq #1,d2
- IFNE NARG-1
- move.l \2,d1
- IFNE NARG-2
- move.l \3,d2
- ENDC
- ENDC
- TLDo Reqinfo
- movem.l (a7)+,d1-d2
- tst.l d0
- ENDM
-
- TLwpoll: MACRO
- TLDo Wpoll
- tst.l d0
- ENDM
-
- TLtrim: MACRO
- movem.l d0-d1,-(a7)
- move.l \1,d0
- move.l \2,d1
- TLDo Trim
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- movem.l (a7)+,d0-d1
- ENDM
-
- TLwsub: MACRO
- move.l d0,-(a7)
- move.l \1,d0
- TLDo Wsub
- move.l (a7)+,d0
- ENDM
-
- TLwpop: MACRO
- move.l d0,-(a7)
- move.l \1,d0
- TLDo Wpop
- move.l (a7)+,d0
- ENDM
-
- TLmultiline: MACRO
- movem.l d0-d1,-(a7)
- move.l \1,d0
- move.l \2,d1
- TLDo Multiline
- movem.l (a7)+,d0-d1
- tst.l xxp_errn(a4)
- eori.w #-1,ccr
- ENDM
-
- TLwupdate: MACRO
- TLDo Wupdate
- ENDM
-
- TLwcheck: MACRO
- movem.l d0-d1,-(a7)
- TLDo Wcheck
- tst.l d0
- movem.l (a7)+,d0-d1
- ENDM
-
- TLfloat: MACRO
- move.l \1,a0
- move.l \2,a1
- TLDo Float
- tst.w d0
- eori.w #-1,ccr
- ENDM
-
- TLbusy: MACRO
- TLDo Busy
- ENDM
-
- TLunbusy: MACRO
- TLDo Unbusy
- ENDM
-
- TLreqcolor: MACRO
- move.l \1,d0
- TLDo Reqcolor
- tst.l d0
- ENDM
-
- TLonmenu: MACRO
- movem.l d0-d2,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- TLDo Onmenu
- movem.l (a7)+,d0-d2
- ENDM
-
- TLoffmenu: MACRO
- movem.l d0-d2,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- TLDo Offmenu
- movem.l (a7)+,d0-d2
- ENDM
-
- TLprefdir: MACRO
- movem.l d0/a0,-(a7)
- move.l \1,a0
- moveq #0,d0
- IFC '\2','save'
- moveq #-1,d0
- ENDC
- TLDo Prefdir
- movem.l (a7)+,d0/a0
- ENDM
-
- TLpreffil: MACRO
- movem.l d0-d3/a0,-(a7)
- move.l \1,a0
- moveq #0,d0
- IFC '\2','save'
- moveq #-1,d0
- ENDC
- move.l \3,d2
- move.l \4,d3
- TLDo Preffil
- movem.l (a7)+,d0-d3/a0
- ENDM
-
- TLbad: MACRO
- move.l d0,-(a7)
- move.l \1,d0
- TLDo Strbuf
- TLDo Output
- move.l (a7)+,d0
- subq.w #1,xxp_ackn(a4)
- ENDM
-
- TLstring: MACRO
- TLstrbuf \1
- TLtrim \2,\3
- ENDM
-
- TLoutstr: MACRO
- TLstrbuf \1
- TLoutput
- ENDM
-
- * easy call to TLWindow (opens window 0, title must be in st_1)
- TLwindow0: MACRO
- TLwindow #-1
- TLwindow #0,#0,#0,#640,#100,xxp_Width(a4),xxp_Height(a4),#0,#st_1
- ENDM
-
- * open a private screen for WSuite \1=depth, \2=title, \3=pens [\4 display]
- TLscreen: MACRO
- movem.l d0-d1/a0-a1/a6,-(a7)
- sub.l #52,a7 ;room for 6 tags
- move.l a7,a0
- move.l #SA_Width,(a0)+ ;tag 1
- move.l #STDSCREENWIDTH,(a0)+
- move.l #SA_Height,(a0)+ ;tag 2
- move.l #STDSCREENHEIGHT,(a0)+
- move.l #SA_Depth,(a0)+ ;tag 3
- move.l \1,(a0)+
- move.l #SA_Title,(a0)+ ;tag 4
- move.l \2,(a0)+
- move.l #SA_Pens,(a0)+ ;tag 5
- move.l \3,(a0)+
- move.l #SA_DisplayID,(a0)+ ;tag 6
- IFEQ NARG-3
- move.l #HIRES_KEY,(a0)+ ;no \4, hires
- ENDC
- IFEQ NARG-4
- move.l \4,(a0)+ ;if \4 -> display id
- ENDC
- move.l #TAG_END,(a0)+ ;delimit
- move.l xxp_intb(a4),a6
- sub.l a0,a0
- move.l a7,a1
- jsr _LVOOpenScreenTagList(a6)
- clr.w xxp_Public(a4) ;tell Front.i to close screen on closedown
- add.l #52,a7
- move.l d0,xxp_Screen(a4)
- movem.l (a7)+,d0-d1/a0-a1/a6 ;EQ if bad
- ENDM
-
- * attach mem to a windows Mmem a5=window's wsuw \1=addr \2=size
- * The mem *must* created by AllocVec (*not* e.g. TLpublic)
- TLattach: MACRO
- movem.l d0-d1/a0,-(a7) ;save all
- move.l \1,a0
- move.l a0,xxp_Mmem(a5) ;put in mem pointer
- clr.b (a0)+ ;initialise text memory
- move.l a0,xxp_Mtop(a5)
- subq.l #1,a0
- move.l \2,d0 ;d0 = Mmsz
- move.l d0,xxp_Mmsz(a5)
- add.l d0,a0
- clr.b -34(a0) ;init ffil } file, dir used in TLMultiline
- clr.b -164(a0) ;init fdir } TLAslfile calls
- clr.l xxp_Mcrr(a5)
- clr.l xxp_Mtpl(a5)
- move.w #76,xxp_Mmxc(a5)
- movem.l (a7)+,d0-d1/a0
- ENDM
-
- TLgetilbm: MACRO
- movem.l d0-d1/a1,-(a7)
- moveq #-1,d0
- move.l \1,d1
- move.l \2,a1
- IFGE NARG-3
- IFNC '\3',''
- moveq #0,d0
- ENDC
- ENDC
- IFGE NARG-4
- bset #31,d1
- ENDC
- TLDo Getilbm
- movem.l (a7)+,d0-d1/a1
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLputilbm: MACRO
- movem.l d0-d3/a0,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- move.l \4,d3
- move.l \5,a0
- TLDo Putilbm
- movem.l (a7)+,d0-d3/a0
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLresize: MACRO
- movem.l d0-d5/a0,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- move.l \4,d3
- move.l \5,d4
- move.l \6,d5
- moveq #0,d6
- IFGE NARG-7
- IFNC '\7',''
- move.l \7,d6
- ENDC
- ENDC
- IFGE NARG-8
- move.l \8,a0
- bset #31,d1
- ENDC
- TLDo Resize
- movem.l (a7)+,d0-d5/a0
- ENDM
-
- TLellipse: MACRO
- movem.l d0-d7/a0,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- move.l \4,d3
- move.l \5,d4
- move.l \6,d5
- move.l \7,d6
- move.l \8,d7
- IFGE NARG-9
- IFNC '\9',''
- move.l \9,a0
- bset #31,d1
- ENDC
- IFGE NARG-10
- bset #31,d0
- ENDC
- ENDC
- TLDo Ellipse
- movem.l (a7)+,d0-d7/a0
- tst.l xxp_errn(a4)
- eori.w #-1CCR
- ENDM
-
- TLgetarea: MACRO
- movem.l d0-d3/a0,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- move.l \4,d3
- move.l \5,a0
- TLDo Getarea
- tst.l d0
- movem.l (a7)+,d0-d3/a0
- ENDM
-
- TLprogress: MACRO
- movem.l d0-d2,-(a7)
- move.l \1,d0
- move.l \2,d1
- moveq #0,d2
- IFGE NARG-3
- moveq #-1,d2
- IFC '\3','%'
- moveq #1,d2
- ENDC
- ENDC
- TLDo Progress
- movem.l (a7)+,d0-d2
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLreqoff: MACRO
- TLDo Reqoff
- ENDM
-
- TLhexasc16: MACRO
- movem.l d0-d1,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,a0
- TLDo Hexasc16
- movem.l (a7)+,d0-d1
- ENDM
-
- TLreqfont: MACRO
- move.l \1,d0
- TLDo Reqfont
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLdata: MACRO
- movem.l d0-d1,-(a7)
- move.l \1,d0
- move.l \2,d1
- TLDo Data
- tst.l d0
- movem.l (a7)+,d0-d1
- ENDM
-
- TLwscroll: MACRO
- movem.l d0-d1,-(a7)
- moveq #-1,d0
- IFC '\1','set'
- moveq #0,d0
- ENDC
- moveq #0,d1
- IFGE NARG-2
- IFC '\2','vert'
- moveq #-1,d1
- ENDC
- IFC '\2','horz'
- moveq #1,d1
- ENDC
- ENDC
- TLDo Wscroll
- movem.l (a7)+,d0-d1
- ENDM
-
- TLbutmon: MACRO
- movem.l d1-d2,-(a7)
- move.l \1,d1
- move.l \2,d2
- TLDo Butmon
- tst.l d0
- movem.l (a7)+,d1-d2
- ENDM
-
- TLbutstr: MACRO
- move.l a0,-(a7)
- move.l \1,a0
- TLDo Butstr
- move.l (a7)+,a0
- ENDM
-
- TLbutprt: MACRO
- TLDo Butprt
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLbuttxt: MACRO
- move.l a0,-(a7)
- move.l \1,a0
- TLDo Buttxt
- move.l (a7)+,a0
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLslider: MACRO
- move.l a5,-(a7)
- move.l \1,a5
- TLDo Slider
- move.l (a7)+,a5
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLpassword: MACRO
- move.l \1,d0
- TLDo Password
- tst.l d0
- ENDM
-
- TLslimon: MACRO
- movem.l d0-d3,-(a7)
- move.l \1,d1
- move.l \2,d2
- move.l \3,d3
- TLDo Slimon
- tst.l d0
- movem.l (a7)+,d0-d3
- ENDM
-
- TLreqredi: MACRO
- move.l a5,-(a7)
- move.l \1,a5
- TLDo Reqredi
- move.l (a7)+,a5
- ENDM
-
- TLreqchek: MACRO
- movem.l d2-d3,-(a7)
- move.l \1,d2
- move.l \2,d3
- TLDo Reqchek
- movem.l (a7)+,d2-d3
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLreqon: MACRO
- move.l \1,a5
- TLDo Reqon
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLprefs: MACRO
- move.l d0,-(a7)
- moveq #1,d0
- IFGE NARG-1
- moveq #-1,d0
- ENDC
- TLDo Prefs
- move.l (a7)+,d0
- ENDM
-
- TLmget: MACRO
- TLDo Mget
- tst.l d0
- ENDM
-
- TLfreebmap: MACRO
- movem.l d0-d2/a0-a3/a6,-(a7)
- move.l xxp_sysb(a4),a6
- move.l \1,a3
- move.l a3,a2
- addq.l #bm_Planes,a2
- moveq #0,d2
- move.b bm_Depth(a3),d2
- subq.w #1,d2
- .fbmp:
- move.l (a2)+,a1
- jsr _LVOFreeVec(a6)
- dbra d2,.fbmp
- move.l a3,a1
- jsr _LVOFreeVec(a6)
- movem.l (a7)+,d0-d2/a0-a3/a6
- ENDM
-
- TLembed: MACRO
- ENDM
-
- TLtabmon: MACRO
- movem.l d1-d3,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- move.l \4,d3
- TLDo Tabmon
- movem.l (a7)+,d1-d3
- tst.l d0
- ENDM
-
- TLpict:MACRO
- movem.l d0-d2,-(a7)
- move.l \1,d0
- move.l \2,d1
- move.l \3,d2
- TLDo Pict
- movem.l (a7)+,d0-d2
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLtabs: MACRO
- movem.l d0-d3,-(a7)
- move.l \1,d0
- IFGE NARG-2
- move.l \2,d1
- IFGE NARG-3
- move.l \3,d2
- IFGE NARG-4
- move.l \4,d3
- ENDC
- ENDC
- ENDC
- TLDo Tabs
- movem.l (a7)+,d0-d3
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDM
-
- TLdropdown: MACRO
- movem.l d0-d7,-(a7)
- moveq #-1,d0
- IFC 'draw','\1'
- moveq #0,d0
- ENDC
- move.l \2,d1
- move.l \3,d2
- moveq #1,d3
- IFNC '','\4'
- move.l \4,d3
- ENDC
- move.l \5,d4
- move.l \6,d5
- moveq #0,d6
- IFGE NARG-7
- IFNC '','\7'
- move.l \7,d6
- ENDC
- ENDC
- moveq #7,d7
- IFGE NARG-8
- IFNC 'cycle','\8'
- move.l \8,d7
- ENDC
- IFC 'cycle','\8'
- moveq #-1,d7
- ENDC
- ENDC
- TLDo Dropdown
- IFNC 'draw','\1'
- move.l d0,(a7)
- ENDC
- movem.l (a7)+,d0-d7
- IFC 'draw','\1'
- tst.l xxp_errn(a4)
- eori.w #-1,CCR
- ENDC
- ENDM
-